package com.xqzgj.system.domain;

import com.xqzgj.common.annotation.Excel;
import com.xqzgj.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 库存信息对象 stock_info
 */
public class StockInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 库存ID */
    private Long id;

    /** 商品ID */
    @Excel(name = "商品ID")
    private Long goodsId;

    /** 商品编码 */
    @Excel(name = "商品编码")
    private String goodsCode;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String goodsName;

    /** 商品规格 */
    @Excel(name = "商品规格")
    private String goodsSpec;

    /** 商品单位 */
    @Excel(name = "商品单位")
    private String goodsUnit;

    /** 商品类别ID */
    @Excel(name = "商品类别ID")
    private Long categoryId;

    /** 商品类别名称 */
    @Excel(name = "商品类别名称")
    private String categoryName;

    /** 仓库ID */
    @Excel(name = "仓库ID")
    private Long warehouseId;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    private String warehouseName;

    /** 当前库存 */
    @Excel(name = "当前库存")
    private Integer currentStock;

    /** 可用库存 */
    @Excel(name = "可用库存")
    private Integer availableStock;

    /** 锁定库存 */
    @Excel(name = "锁定库存")
    private Integer lockedStock;

    /** 在途库存 */
    @Excel(name = "在途库存")
    private Integer transitStock;

    /** 最低库存 */
    @Excel(name = "最低库存")
    private Integer minStock;

    /** 最高库存 */
    @Excel(name = "最高库存")
    private Integer maxStock;

    /** 安全库存 */
    @Excel(name = "安全库存")
    private Integer safeStock;

    /** 平均成本 */
    @Excel(name = "平均成本")
    private Double avgCost;

    /** 库存金额 */
    @Excel(name = "库存金额")
    private Double stockAmount;

    /** 库存状态（0停用 1正常） */
    @Excel(name = "库存状态", readConverterExp = "0=停用,1=正常")
    private String status;

    /** 库存备注 */
    private String stockRemark;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setGoodsId(Long goodsId) {
        this.goodsId = goodsId;
    }

    public Long getGoodsId() {
        return goodsId;
    }

    public void setGoodsCode(String goodsCode) {
        this.goodsCode = goodsCode;
    }

    public String getGoodsCode() {
        return goodsCode;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsSpec(String goodsSpec) {
        this.goodsSpec = goodsSpec;
    }

    public String getGoodsSpec() {
        return goodsSpec;
    }

    public void setGoodsUnit(String goodsUnit) {
        this.goodsUnit = goodsUnit;
    }

    public String getGoodsUnit() {
        return goodsUnit;
    }

    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }

    public Long getCategoryId() {
        return categoryId;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setWarehouseId(Long warehouseId) {
        this.warehouseId = warehouseId;
    }

    public Long getWarehouseId() {
        return warehouseId;
    }

    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
    }

    public String getWarehouseName() {
        return warehouseName;
    }

    public void setCurrentStock(Integer currentStock) {
        this.currentStock = currentStock;
    }

    public Integer getCurrentStock() {
        return currentStock;
    }

    public void setAvailableStock(Integer availableStock) {
        this.availableStock = availableStock;
    }

    public Integer getAvailableStock() {
        return availableStock;
    }

    public void setLockedStock(Integer lockedStock) {
        this.lockedStock = lockedStock;
    }

    public Integer getLockedStock() {
        return lockedStock;
    }

    public void setTransitStock(Integer transitStock) {
        this.transitStock = transitStock;
    }

    public Integer getTransitStock() {
        return transitStock;
    }

    public void setMinStock(Integer minStock) {
        this.minStock = minStock;
    }

    public Integer getMinStock() {
        return minStock;
    }

    public void setMaxStock(Integer maxStock) {
        this.maxStock = maxStock;
    }

    public Integer getMaxStock() {
        return maxStock;
    }

    public void setSafeStock(Integer safeStock) {
        this.safeStock = safeStock;
    }

    public Integer getSafeStock() {
        return safeStock;
    }

    public void setAvgCost(Double avgCost) {
        this.avgCost = avgCost;
    }

    public Double getAvgCost() {
        return avgCost;
    }

    public void setStockAmount(Double stockAmount) {
        this.stockAmount = stockAmount;
    }

    public Double getStockAmount() {
        return stockAmount;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setStockRemark(String stockRemark) {
        this.stockRemark = stockRemark;
    }

    public String getStockRemark() {
        return stockRemark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("goodsId", getGoodsId())
                .append("goodsCode", getGoodsCode())
                .append("goodsName", getGoodsName())
                .append("goodsSpec", getGoodsSpec())
                .append("goodsUnit", getGoodsUnit())
                .append("categoryId", getCategoryId())
                .append("categoryName", getCategoryName())
                .append("warehouseId", getWarehouseId())
                .append("warehouseName", getWarehouseName())
                .append("currentStock", getCurrentStock())
                .append("availableStock", getAvailableStock())
                .append("lockedStock", getLockedStock())
                .append("transitStock", getTransitStock())
                .append("minStock", getMinStock())
                .append("maxStock", getMaxStock())
                .append("safeStock", getSafeStock())
                .append("avgCost", getAvgCost())
                .append("stockAmount", getStockAmount())
                .append("status", getStatus())
                .append("stockRemark", getStockRemark())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}